package com.gc.sql.test;

public final class OperationInExpression extends Object {
    private Expression left;
    
    private Operation operation;
    
    private Expression right;
    
    public OperationInExpression(Expression left, Operation operation, Expression right) {
        this.left = left;
        this.operation = operation;
        this.right = right;
    }
    private OperationInExpression() {
    }
    public static LeftBuilder builder() {
        OperationInExpression self = new OperationInExpression();
        return self.new LeftBuilder ();
    }
    public class LeftBuilder extends Object {
        private LeftBuilder () {}
        public OperationBuilder left(Expression left) {
            OperationInExpression.this.left = left;
            return OperationInExpression.this.new OperationBuilder ();
        }
    
    }
    public class OperationBuilder extends Object {
        private OperationBuilder () {}
        public RightBuilder operation(Operation operation) {
            OperationInExpression.this.operation = operation;
            return OperationInExpression.this.new RightBuilder ();
        }
    
    }
    public class RightBuilder extends Object {
        private RightBuilder () {}
        public OperationInExpression right(Expression right) {
            OperationInExpression.this.right = right;
            return OperationInExpression.this;
        }
    
    }
        @Override
        public String toString() {
            return String.valueOf(left)+" "+String.valueOf(operation)+" "+String.valueOf(right);
        }

}
